View Javadoc
1 /* 2 Java Regular Expressions Plugin API 3 4 Copyright (C) 2002 Jose San Leandro Armend?riz 5 jsanleandro@yahoo.es 6 chousz@yahoo.com 7 8 This library is free software; you can redistribute it and/or 9 modify it under the terms of the GNU Lesser General Public 10 License as published by the Free Software Foundation; either 11 version 2.1 of the License, or (at your option) any later version. 12 13 This library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 Lesser General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public 19 License along with this library; if not, write to the Free Software 20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 22 Thanks to ACM S.L. for distributing this library under the LGPL license. 23 Contact info: jsr000@terra.es 24 Postal Address: c/Playa de Lagoa, 1 25 Urb. Valdecaba?as 26 Boadilla del monte 27 28660 Madrid 28 Spain 29 30 This library uses some external APIs. So far I haven't released such 31 APIs as projects themselves, but you should be able 32 to download them from the web page where you got this source code. 33 34 ****************************************************************************** 35 * 36 * Filename: $RCSfile: MatcherGNUAdapter.java,v $ 37 * 38 * Author: Jose San Leandro Armend?riz 39 * 40 * Description: GNU Regexp 1.1.4 specific matcher adapter. This class 41 * makes possible the use of GNU Regexp 1.1.4 matchers 42 * inside this API. 43 * 44 * Last modified by: $Author: dev $ at $Date: 2002/09/27 08:27:14 $ 45 * 46 * File version: $Revision: 1.5 $ 47 * 48 * Project version: $Name: $ 49 * ("Name" means no concrete version has been checked out) 50 * 51 * $Id: MatcherGNUAdapter.java,v 1.5 2002/09/27 08:27:14 dev Exp $ 52 * 53 */ 54 package org.acmsl.regexpplugin.gnuregexp; 55 56 /* 57 * Importing project-specific classes. 58 */ 59 import org.acmsl.regexpplugin.gnuregexp.PatternGNUAdapter; 60 import org.acmsl.regexpplugin.Matcher; 61 import org.acmsl.regexpplugin.MatchResult; 62 import org.acmsl.regexpplugin.Pattern; 63 64 /* 65 * Importing GNU Regexp 1.1.4 classes. 66 */ 67 import gnu.regexp.RE; 68 import gnu.regexp.REMatchEnumeration; 69 70 /* 71 * Importing some ACM classes. 72 */ 73 import org.acmsl.version.Version; 74 import org.acmsl.version.VersionFactory; 75 76 /*** 77 * GNU Regexp 1.1.4 matcher adapter. This class makes possible 78 * the use of GNU Regexp 1.1.4 matchers inside this API. 79 * @author <a href="mailto:jsanleandro@yahoo.es" 80 >Jose San Leandro Armend?riz</a> 81 * @version $Revision: 1.5 $ 82 */ 83 public class MatcherGNUAdapter 84 implements Matcher 85 { 86 /*** 87 * Concrete engine implementation. 88 */ 89 private REMatchEnumeration m__REMatchEnumeration; 90 91 /*** 92 * Group count. 93 */ 94 private int m__iGroups; 95 96 /*** 97 * Constructs a MatcherGNUAdapter. 98 */ 99 public MatcherGNUAdapter() {}; 100 101 /*** 102 * Checks if given text contains specified pattern. 103 * @param text the text to analyze. 104 * @param pattern the regular expression to apply. 105 * @return true if the pattern is found. 106 */ 107 public boolean contains(String text, Pattern pattern) 108 { 109 boolean result = false; 110 111 if ( (pattern != null) 112 && (pattern instanceof PatternGNUAdapter)) 113 { 114 RE t_RE = ((PatternGNUAdapter) pattern).getDelegatedInstance(); 115 116 setREMatchEnumeration(t_RE.getMatchEnumeration(text)); 117 118 setGroups(t_RE.getNumSubs()); 119 120 result = 121 ( (getREMatchEnumeration() != null) 122 && (getREMatchEnumeration().hasMoreMatches())); 123 } 124 125 return result; 126 } 127 128 /*** 129 * Sets the match enumeration. 130 * @param matchEnumeration such instance. 131 */ 132 protected void setREMatchEnumeration(REMatchEnumeration reMatchEnumeration) 133 { 134 m__REMatchEnumeration = reMatchEnumeration; 135 } 136 137 /*** 138 * Retrieves the match enumeration. 139 * @return such instance. 140 */ 141 protected REMatchEnumeration getREMatchEnumeration() 142 { 143 return m__REMatchEnumeration; 144 } 145 146 /*** 147 * Sets the group count. 148 * @param groups the number of groups. 149 */ 150 protected void setGroups(int groups) 151 { 152 m__iGroups = groups; 153 } 154 155 /*** 156 * Retrieves the group count. 157 * @return the number of groups. 158 */ 159 protected int getGroups() 160 { 161 return m__iGroups; 162 } 163 164 /*** 165 * Retrieves the last match found due to a previous call to 166 * <i>contains</i> method. 167 * @return such match result. 168 */ 169 public MatchResult getMatch() 170 { 171 MatchResult result = null; 172 173 if (getREMatchEnumeration() != null) 174 { 175 result = 176 new MatchResultGNUAdapter( 177 getREMatchEnumeration().nextMatch(), 178 getGroups()); 179 } 180 181 return result; 182 } 183 184 /*** 185 * Concrete version object updated everytime it's checked-in in a CVS 186 * repository. 187 */ 188 public static final Version VERSION = 189 VersionFactory.createVersion("$Revision: 1.5 $"); 190 191 /*** 192 * Retrieves the current version of this object. 193 * @return the version object with such information. 194 */ 195 public Version getVersion() 196 { 197 return VERSION; 198 } 199 200 /*** 201 * Retrieves the current version of this class. 202 * @return the object with class version information. 203 */ 204 public static Version getClassVersion() 205 { 206 return VERSION; 207 } 208 }

This page was automatically generated by Maven